package com.fanrui.code.chess.mahjong.round;

import java.util.List;

import com.fanrui.code.chess.mahjong.AbstractMahjongTable;
import com.fanrui.code.chess.mahjong.StandingsRound;
import com.fanrui.proto.cmd.Operation;
import com.fanrui.proto.cmd.ResPlayerOperation;

public abstract class MahjongRound extends Round {

	protected AbstractMahjongTable<?> table;
	
	public MahjongRound(int waitTime, Long currentId, List<Operation> canResponseType,AbstractMahjongTable<?>  table) {
		super(waitTime, currentId, canResponseType);
		this.table = table;
	}
	public MahjongRound(Long currentId, List<Operation> canResponseType,AbstractMahjongTable<?>  table) {
		super(Integer.MAX_VALUE, currentId, canResponseType);
		this.table = table;
	}
	
	/**  
	*  添加一条玩家响应
	*  @param respnse    
	*  @return  Object   
	*/  
	public  abstract  ResPlayerOperation.Result addResponse(MahjongOperationResponse response);
	
	public abstract StandingsRound toStandingsRound();
	
	public abstract MahjongOperationResponse getScoreResponse();
	
	public abstract boolean isAoutoNext();

}
